A data storage system such as a Storage Area Network or SAN is composed of a set of physical storage devices (e.g., physical storage drives) that are grouped together into storage arrays, wherein each storage array is called a Redundant Array of Independent Disks (RAID). From a RAID group, portions of the storage array are allocated to a host computing device (host) to provide storage functions for operations or calculations being performed by the host. At least one host and at least one storage array may be considered to comprise a data storage system environment.
A given host issues data read commands and/or data write commands to a given storage array in the form of input/output (I/O) requests. In most storage array implementations, it is known to utilize an array cache to manage data associated with incoming write commands as well as to store data accessed from the storage array in response to previous read commands. In this way, the storage array does not need to access the storage drives to obtain data that has already been read and stored in the array cache. Receiving a request for data that has already been read and stored in the array cache is referred to as a “read hit.” Thus, by managing read hits, the array cache improves the read request processing performance of the data storage system environment.
Some implementations of data storage system environments go further and include a cache in the host. In some cases, the host cache is realized using one or more flash memory devices. Effectively, the flash memory serves a similar function as the array cache, i.e., the flash memory stores data previously requested from the storage array. When there is a read hit in the flash memory, the flash memory provides the requested data rather than retrieving it from the storage array. Again, the host-based flash memory improves the read request processing performance of the data storage system environment.
However, there are cases where this host-based flash memory usage might cause degradation in the read request processing performance of the data storage system environment. Accordingly, in at least such cases, a need exists for improving read request processing performance in the data storage system environment.